package com.dszq.user.controllerv1;

import com.dszq.common.constants.UserConstants;
import com.dszq.model.common.dtos.ResponseResult;
import com.dszq.model.user.dtos.AuthDto;
import com.dszq.user.service.ApUserRealNameService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * [一句话描述该类的功能]
 *
 * @author : [Lenovo]
 * @version : [v1.0]
 * @createTime : [2024/4/30 17:23]
 */
@RestController
@RequestMapping("/api/v1/auth")
public class ApUserRealNameController {
    @Autowired
    private ApUserRealNameService apUserRealNameService;
    /**
     * 提交请求获取作者列表。
     *
     * @param authDto 包含授权信息的数据传输对象，用于请求认证和权限验证。
     * @return 返回一个响应结果，其中包含作者列表或其他相关信息。
     */
    @PostMapping("/list")
    public ResponseResult listAuthor(@RequestBody AuthDto authDto)
    {
        // 调用服务层方法，传入认证信息，获取作者列表响应结果
        return apUserRealNameService.listAuthor(authDto);
    }
    /**
     * 处理认证失败的请求。
     *
     * @param authDto 包含认证信息的数据传输对象，通过RequestBody接收前端传来的数据。
     * @return 返回操作结果，包括操作是否成功，错误码等信息，类型为ResponseResult。
     */
    @PostMapping("/authFail")
    public ResponseResult authFail(@RequestBody AuthDto authDto)
    {
        // 调用服务层方法，更新用户状态为认证失败
        return apUserRealNameService.updateStatus(authDto, UserConstants.FAIL_CHECK);
    }

    @PostMapping("/autnPass")
    public ResponseResult authPass(@RequestBody AuthDto authDto)
    {
        // 调用服务层方法，更新用户状态为认证成功
        return apUserRealNameService.updateStatus(authDto, UserConstants.OK_CHECK);
    }
}
